package com.taojiazheng.common;

import com.taojiazheng.vo.ExceptionVo;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
/**
 * @author 赵成林
 * @date 2017/11/22 19:42
 */
@ControllerAdvice
public class GlobalExceptionHandler {
    /**
     * 捕捉异常，反馈给客户端
     * 系统未知异常为100
     */
    @ResponseBody
    @ExceptionHandler(value = Exception.class)
    public ExceptionVo exceptionHandler(Exception ex){
        ExceptionVo exceptionVo = new ExceptionVo();
        exceptionVo.setCode(100);
        exceptionVo.setMessage(ex.getMessage());
        ex.printStackTrace();
        return exceptionVo;
    }
    /**
     * 捕捉自定义的异常
     * 反馈给客户端
     */
    @ResponseBody
    @ExceptionHandler(value = ApplicationException.class)
    public ExceptionVo applicationExceptionHandler(ApplicationException ex){
        ExceptionVo exceptionVo = new ExceptionVo();
        exceptionVo.setCode(ex.getCode());
        exceptionVo.setMessage(ex.getMessage());
        return exceptionVo;
    }
}
